home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / progrmng / mlpmodul.sit / MacLogimoPlus Documentation / DEF3 Files / MemoryMgr.DEF < prev    next >
Encoding:
Modula Definition  |  1990-06-14  |  3.0 KB  |  85 lines  |  [TEXT/PMED]

  1. DEFINITION MODULE MemoryMgr; (* W. Rohdewald / ETHZ / 15.2.85  *) 
  2.                              (* Last modification 19.06.85 fxk *)
  3.  
  4.  (* GZCritical and GZSaveHnd are not implemented. *)
  5.  
  6. FROM SYSTEM IMPORT ADDRESS;
  7. IMPORT MacBase;
  8.  
  9. EXPORT QUALIFIED MemFullErr,NilHandleErr,MemWZErr,MemPurErr,NoErr,
  10.   MaxSize,
  11.   Handle,THz,OsErr,
  12.   SetApplBase,InitApplZone,InitZone,GetZone,SetZone,ApplicZone,SystemZone,
  13.   CompactMem,PurgeMem,FreeMem,ResrvMem,MaxMem,TopMem,SetGrowZone,
  14.   SetApplLimit,
  15.   NewPtr,DisposPtr,GetPtrSize,SetPtrSize,PtrZone,
  16.   NewHandle,DisposHandle,GetHandleSize,SetHandleSize,HandleZone,
  17.   RecoverHandle,EmptyHandle,ReAllocHandle,
  18.   HLock,HUnLock,HPurge,HNoPurge,MoreMasters,
  19.   BlockMove,MemError,
  20.   GZCritical,GZSaveHnd,GrowProc;
  21.  
  22. CONST
  23.   MemFullErr    = -108;     (* Not enough room in heap zone *)
  24.   NilHandleErr  = -109;     (* Master Pointer was NIL in HandleZone or other   *)
  25.   MemWZErr      = -111;     (* WhichZone failed (applied to free block)        *)
  26.   MemPurErr     = -112;     (* trying to purge a locked or non-purgeable block  *)
  27.   NoErr         =  0;       (* All is well *)
  28.  
  29.   MaxSize       = 800000H;  (* Max data block LONGCARD is 512K bytes  *)
  30.  
  31. TYPE LONGCARD=ADDRESS;LONGINT=ADDRESS;
  32.  
  33.   Handle        = MacBase.Handle;(* pointer to a master pointer *)
  34.   THz           = ADDRESS;       (* pointer to the start of a heap zone *)
  35.   OsErr         = MacBase.OsErr;            (* error code *)
  36.   GrowProc      = PROCEDURE (LONGCARD): LONGCARD;
  37.  
  38. PROCEDURE SetApplBase(startPtr: ADDRESS);
  39. PROCEDURE InitApplZone();
  40. PROCEDURE InitZone(grwProc:            GrowProc;
  41.                    moreMasters:        INTEGER;
  42.                    limitPtr,startPtr : ADDRESS);
  43. PROCEDURE GetZone(): THz;
  44. PROCEDURE SetZone(hz:THz);
  45. PROCEDURE ApplicZone(): THz;
  46. PROCEDURE SystemZone(): THz;
  47. PROCEDURE CompactMem(cbNeeded: LONGCARD): LONGCARD;
  48. PROCEDURE PurgeMem(cbNeeded: LONGCARD);
  49. PROCEDURE FreeMem(): LONGCARD;
  50. PROCEDURE ResrvMem(cbNeeded: LONGCARD);
  51. PROCEDURE MaxMem(VAR grow: LONGCARD): LONGCARD;
  52. PROCEDURE TopMem(): ADDRESS;
  53.  
  54. PROCEDURE SetGrowZone(growZone: GrowProc);
  55. PROCEDURE SetApplLimit(zoneLimit: ADDRESS);
  56.  
  57. PROCEDURE NewPtr(byteCount: LONGCARD): ADDRESS;
  58. PROCEDURE DisposPtr(p: ADDRESS);
  59. PROCEDURE GetPtrSize(p: ADDRESS): LONGCARD;
  60. PROCEDURE SetPtrSize(p: ADDRESS; newSize: LONGCARD);
  61. PROCEDURE PtrZone(p: ADDRESS): THz;
  62.  
  63. PROCEDURE NewHandle(byteCount: LONGCARD): Handle;
  64. PROCEDURE DisposHandle(h: Handle);
  65. PROCEDURE GetHandleSize(h: Handle): LONGCARD;
  66. PROCEDURE SetHandleSize(h: Handle; newSize: LONGCARD);
  67. PROCEDURE HandleZone(h: Handle): THz;
  68. PROCEDURE RecoverHandle(p: ADDRESS): Handle;
  69. PROCEDURE EmptyHandle(h: Handle);
  70. PROCEDURE ReAllocHandle(h: Handle; byteCount: LONGCARD);
  71.  
  72. PROCEDURE HLock(h: Handle);
  73. PROCEDURE HUnLock(h: Handle);
  74. PROCEDURE HPurge(h: Handle);
  75. PROCEDURE HNoPurge(h: Handle);
  76. PROCEDURE MoreMasters(): OsErr;
  77.  
  78. PROCEDURE BlockMove(srcPtr, destPtr: ADDRESS; byteCount: LONGCARD);
  79. PROCEDURE MemError(): OsErr;
  80.  
  81. PROCEDURE GZCritical(): BOOLEAN;
  82. PROCEDURE GZSaveHnd(): Handle;
  83.  
  84. END MemoryMgr.
  85.